﻿using System.Collections.ObjectModel;

namespace Renci.Data.Interop.OpenGIS.Tml
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/tml")]
    public class ValueType
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("numValues")]
        public BindType NumValues { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("arrayType")]
        public BindType ArrayType { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("fcnInterpol")]
        public BindType FcnInterpol { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("valueDataType")]
        public BindType ValueDataType { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("values")]
        public BindType Values { get; set; }

        private Collection<BindType> _mults = new Collection<BindType>();
        /// <summary>
        /// Default 1. If multiple values of mult, then each value corresponds to the corresponding Characteristic Frame position or interval. 
        /// Can have a set of mult or offset equalization values and a sensor modifying those values through a bindUID.  
        /// The bindUID sensor value will multiply with the values in the mult element.
        /// </summary>
        [System.Xml.Serialization.XmlElementAttribute("mult")]
        public Collection<BindType> Mults
        {
            get
            {
                return this._mults;
            }
        }

        private Collection<BindType> _offsets = new Collection<BindType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("offset")]
        public Collection<BindType> Offsets
        {
            get
            {
                return this._offsets;
            }
        }

        private Collection<Accuracy> _accuracies = new Collection<Accuracy>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("accuracy")]
        public Collection<Accuracy> Accuracies
        {
            get
            {
                return this._accuracies;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("name")]
        public string Name { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("uid", DataType = "anyURI")]
        public string Uid { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("uidRef", DataType = "anyURI")]
        public string UidRef { get; set; }
    }
}
